Locqi

世间所有的相遇,都是久别重逢。

没有最好
只有更好


Maven详解(八)------ 继承和聚合

目录

正文

[回到顶部](#jumpDirectory)

1、继承

  需求场景:

  有三个 Maven 工程,每个工程都依赖某个 jar 包,比如 Junit,由于 test 范围的依赖不能传递,它必然会分散在每个工程中,而且每个工程的jar 包版本可能不一致。那么如何管理各个工程中对于某个 jar 包的版本呢?

  解决办法:

  将那个 jar 包版本统一提取到 “父” 工程中,在子工程中声明依赖时不指定版本,以父工程中统一设定的为准,同时也便于修改。

  操作步骤:

  ①、创建父工程
  
create-Parent-Project.png

  ②、在子工程中声明对父工程的引用

1
2
3
4
5
6
7
8
<!--子工程中声明对父工程的引用  -->
<parent>
<groupId>com.ys.maven</groupId>
<artifactId>Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 以当前工程文件为基准的父工程 pom.xml文件的相对路径(可以不配置) -->
<relativePath>../Parent/pom.xml</relativePath>
</parent>

  ③、将子工程的坐标中与父工程坐标重复的内容删除(不删除也可以,为了简洁)

parent-project-groupId-repeat.png
  
  ④、在父工程中统一那个 jar 的版本依赖
 

1
2
3
4
5
6
7
8
9
10
11
 <dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8</version>
<scope>test</scope>
</dependency>
</dependencies>

</dependencyManagement>

 
  dependencyManagement标签管理的依赖,其实没有真正依赖,它只是管理依赖的版本。
  
  ⑤、在子工程中删除 Junit 的版本号
  
delete-version-4-sonProject.png

  以后要更改版本号,我们只需要更改父工程中的版本号即可!!!

  ⑥、父工程通过 properties 统一管理版本号
  
junit-version-properties.png

  我们可以通过自定义标签,然后在标签里面填写常量,这种方法不仅可以用来管理版本号,还可以用来管理比如设置某种编码等等。

[回到顶部](#jumpDirectory)

2、聚合

  需求场景:

  在真实项目中,一个项目有表现层、业务层、持久层等。我们在用Maven 管理项目的时候,通常会创建多个 Maven 工程,也就是一个项目的多个模块。但是这样分成多个模块了,当我们进行项目打包发布的时候,那么要每一个模块都执行打包操作吗?这种重复的操作我们怎么才能避免呢?

  解决办法:

  创建一个聚合工程,将其他的各个模块都由这个聚合工程来管理,那么我们在进行项目发布的时候,只需要打包这个聚合工程就可以了。

  第一步:创建聚合工程(注意聚合工程的打包方式也必须为 pom,通常由 上面所讲的父工程来充当聚合工程)

Parent-Project-Manage-son-Module.png
  
  第二步:创建子工程:业务层

    ①、选择 Maven Module
   
create-maven-module.png

    ②、填写子工程模块名,打包方式选择 jar(子工程除了 web 层我们打包方式选择 war ,其余的都选择 jar)

input-module-Name.png

  第三步:创建子工程:表现层和持久层

    创建步骤和前面一样,注意表现层打包方式我们要选择 war,因为要发布到 tomcat 容器运行。

parent-project.png

  第四步:在聚合工程中添加子工程的引用  

1
2
3
4
5
<modules>
<module>Service</module>
<module>Controller</module>
<module>Mapper</module>
</modules>

注意:

  1、这里虽然各个模块有依赖关系,但是 可以不依赖顺序添加,maven会自动识别依赖关系进行编译打包。

  2、这里总的聚合工程随便哪个工程都可以,但是通常用 Parent 工程来完成。
  
  至此,Maven系列教程 就全部更新完成了!Thanks~

Newer Post

使用Axis2实现WebService的发布和调用

一、Axis2简介:  Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术。在本文中主要介绍了如何使用Axis2开发WebS …

继续阅读
Older Post

Maven详解(七)------ 创建Web工程以及插件原理

目录 1、什么是 Maven 插件?  2、配置编译插件 3、创建 Maven Web 工程 4、添加 tomcat 插件 正文[回到顶部](#jumpDirectory) 1、什么是 Maven 插件?   上一篇博客我们讲了 Maven 的生命周期,我们知道 Maven 的核心是生命周期 …

继续阅读
comments powered by Disqus